/*
 * Copyright (c) 2007-2020 西安交通信息投资营运有限公司 版权所有
 * 作者:张谦
 */

import {page, post} from '@/utils/request';
import {ApiResult} from '@/utils/data';
import {exportExcel, getCurrentUser} from '@/utils/utils';
import config from '@/config';
import {SysUserModel} from './data';

/** 获取系统用户接口基地址 */
const getUrl = (url: string) => config.apiBaseUrl + '/sys/user' + url;

/** 系统用户接口服务 */
const service = {
  /** 新建系统用户 */
  async insert(data: SysUserModel): Promise<ApiResult> {
    return post(getUrl('/insert'), data);
  },

  /** 修改系统用户 */
  async update(data: SysUserModel): Promise<ApiResult> {
    return post(getUrl('/update'), data);
  },

  /** 保存系统用户 */
  async save(created: boolean, oldRecord: any, newRecord: any): Promise<ApiResult> {
    return created ? service.insert(newRecord) : service.update(newRecord)
  },

  /** 根据主键字符串删除系统用户 */
  async delete(ids: string): Promise<ApiResult> {
    return post(getUrl('/delete'), {ids});
  },

  /** 根据主键查询单个系统用户 */
  async selectById(id: string): Promise<ApiResult<SysUserModel>> {
    return post(getUrl('/selectById'), {id});
  },

  /** 根据户账号查询单个用户 */
  async selectByAccount(account: string): Promise<ApiResult<SysUserModel>> {
    return post(getUrl('/selectByAccount'), {account});
  },

  /** 查询系统用户列表 */
  async selectList(data: any) {
    return post(getUrl('/selectList'), data);
  },

  /** 查询系统用户分页列表 */
  async selectPageList(data: any) {
    data.visible = getCurrentUser().admin ? null : true;
    return page(getUrl('/selectPageList'), data);
  },

  /** 导出系统用户列表 */
  export(data: any) {
    exportExcel(getUrl('/export'), data);
  },

  /** 刷新用户缓存 */
  async refresh(): Promise<ApiResult> {
    return post(getUrl('/refresh'));
  },

  /** 根据机构主键查询用户列表 */
  async selectListByDeptId(id: string, hasAllLower: boolean) {
    return post(getUrl('/selectListByDeptId'), {deptId: id, hasAllLower: hasAllLower});
  },

  /** 修改状态 */
  async updateStatus(id: string, sta: boolean) {
    return post(getUrl('/updateStatus'), {ids: id, status: !sta});
  },
}
export default service;
